#文件遍历循环
for line in open(r'D:\新建 文本文档.txt'):
    print(line)

#字符串遍历循环
for item in [123, "PY", 456]:
    print(item, end=",")

#for循环1
sum = 0  #求1到10的累加和
for x in range(1, 11):
    sum = sum + x
print('sum =', sum)

#for循环2
for i in range(0,10,2):   #在0到10之间，每隔2个数字循环
    print('Helllo:',i)

#for循环3
for i in "PYTHON":
    if i =="T":
        continue      #结束当次循环，继续执行后续次数循环
    print(i,end="")

#for循环4
for i in "PYTHON":
    if i =="T":
        break         #跳出并结束当前整个循环，执行循环后的语句
    print(i,end="")

#for循环之else的语句用法
import random
x = random.randint(1,6)       #生成随机数x
for _ in range(2):
    y = int(input('请输入您的猜想：'))
    if x == y:
        print("恭喜你，猜中了")
        break
else:
    print("很抱歉，您猜错了")

#while循环1
i = 1
sum = 0
while i <= 10:
    sum = sum + i
    i = i+2       #在小于10且从1开始相隔两个字符的的数字之间循环相加
print("sum=", sum)

#while循环2
st = input('Input a String:')   #st.upper()
i = 0
while  i < len(st):
    if  'a' <= st[i] <= 'z':  #注意是小写转换为大写，所以这里是a~z
        print(st[i].upper(), end = ',')
    else:
        print(st[i], end = ',') #end-->在输出结果之后加上字符，例如此处就是空格
    i = i + 1   #注意此句不要缩进到else内部(死循环)

#while循环与for循环的转换
st = input('Input a String:')  # st.lower()
for  s  in  st:
    if  'A' <= s <= 'Z':             #注意是大写转换为小写，所以这里是A~Z
        print(s.lower(), end = '')
    else:
        print(s, end = '')

#循环结构中try-exception语句的用法
try:      #try下面的属句可以用来判断对错
    while True:    #一种常见的表达
        age = int(input('输入年龄：'))
        if 16 <= age <= 25:
            break    #跳出并结束当前整个循环，执行循环后的语句

    print('age=', age)
except Exception:
    print('输入错误')

#break和continue语句用法1
from random import randint
score = [randint(1,100) for x in range(50)]    #生成1-100的随机成绩50个
for i,s in enumerate(score):
    if s >=90:
        print(score)
        print("第一个优秀学生是{}号，他的成绩为{}".format(i+1,s))
        break   #找到第一个后，就跳出循环输出结果

#break和continue语句用法2
t = 1
while  t <= 5:      #输入5个>=0的数才能结束
    a = eval(input('Input a number:'))
    if  a < 0:
        continue  #跳过a<0这个数字，转为继续下一个循环（这个不算入5次中的一次循环
    print(a)
    t = t +1


#嵌套循环（以九九乘法表为例）
for i in range(1,10):        #外循环，控制的是“行”
    for j in range(1,i+1):  #内循环，控制的是“列”。内层的j受限于i，而i在外层是1-10
        print('{:2d}*{:<2d}={:2d}|'.format(j, i, j*i), end = '')  # 不换行,2表示占2位
    print()

#异常处理
from random import randint
sm = 0
i = 0
while i < 10:
    try:       #try-exception语句
        sm = sm + 1 / randint(0,1)
        i = i + 1
    except Exception as e:
        print("错误:",  e)
else:
    print(sm)